#pragma once
#include <cstddef>
#include <cstdint>

#ifdef _WIN32
  #ifdef AIC_RUNTIME_EXPORTS
    #define AIC_API __declspec(dllexport)
  #else
    #define AIC_API __declspec(dllimport)
  #endif
#else
  #define AIC_API
#endif

extern "C" {

struct AIC_Buffer { void* ptr; size_t size; };

AIC_API int aic_rt_init();
AIC_API int aic_rt_shutdown();

AIC_API int aic_rt_alloc_host(AIC_Buffer* out, size_t size);
AIC_API int aic_rt_free_host(AIC_Buffer* buf);

AIC_API int aic_rt_submit_cpu();
AIC_API int aic_rt_submit_spirv();

}
